package lembrete.core.report;

import java.util.Iterator;
import java.util.List;

import lembrete.core.beans.Grupo;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class RelatorioGrupoDataSource implements JRDataSource {

	private Iterator itrGrupo;

    private Object valorAtual;

    private boolean irParaProximoGrupo = true;
	
	public RelatorioGrupoDataSource(List lista){
		 super();
	     this.itrGrupo = lista.iterator();
	}
	
	public boolean next() throws JRException {
		 valorAtual = itrGrupo.hasNext() ? itrGrupo.next() : null;
		 irParaProximoGrupo = (valorAtual != null);
		 return irParaProximoGrupo;
	}
	
	public Object getFieldValue(JRField field) throws JRException {
		Object valor = null;
        Grupo grupo = (Grupo) valorAtual;

        if ("nome".equals(field.getName())) {
            valor = grupo.getNome();
        } else if ("idGrupo".equals(field.getName())) {
            valor = grupo.getIdGrupo();
        } else if ("emailGerente".equals(field.getName())) {
            valor = grupo.getEmailGerente();
        } else if ("editavel".equals(field.getName())) {
            valor = grupo.isEditavel();
        } else if ("entradas".equals(field.getName())) {
            valor = new JRBeanCollectionDataSource(grupo.getEntradas());
        } 

        return valor;
	}

	

}
